/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.going.vista;

import co.com.going.logica.ILogicaUsuarioo;
import co.com.going.modelo.Usuarioo;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import org.primefaces.component.commandbutton.CommandButton;
import org.primefaces.component.inputtext.InputText;
import org.primefaces.component.password.Password;
import org.primefaces.component.selectonemenu.SelectOneMenu;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author Olguita
 */
@ManagedBean (name="VistaUsuarioo")
@RequestScoped
public class VistaUsuarioo {

    @EJB
    private ILogicaUsuarioo iLogicaUsuarioo;
    
    
    private InputText txtIdUsuario;
    private InputText txtNombreUsuario;
    private InputText txtApellidoUsuario;
    private Password txtPasswordUsuario;
    private Password txtConfPassUsuario;
    private SelectOneMenu cmbNivelAcceso;
    private SelectOneMenu cmbEstadoo;
    private CommandButton btnRegistrar;
    private CommandButton btnModificar;
    private CommandButton btnEliminar;
    private CommandButton btnLimpiar;
    private List<Usuarioo> usuarioos;
    private Usuarioo usuarioSeleccionado;
    
    
    
    public VistaUsuarioo() {
    }

    public ILogicaUsuarioo getiLogicaUsuarioo() {
        return iLogicaUsuarioo;
    }

    public void setiLogicaUsuarioo(ILogicaUsuarioo iLogicaUsuarioo) {
        this.iLogicaUsuarioo = iLogicaUsuarioo;
    }

    public InputText getTxtIdUsuario() {
        return txtIdUsuario;
    }

    public void setTxtIdUsuario(InputText txtIdUsuario) {
        this.txtIdUsuario = txtIdUsuario;
    }

    public InputText getTxtNombreUsuario() {
        return txtNombreUsuario;
    }

    public void setTxtNombreUsuario(InputText txtNombreUsuario) {
        this.txtNombreUsuario = txtNombreUsuario;
    }

    public InputText getTxtApellidoUsuario() {
        return txtApellidoUsuario;
    }

    public void setTxtApellidoUsuario(InputText txtApellidoUsuario) {
        this.txtApellidoUsuario = txtApellidoUsuario;
    }

    public Password getTxtPasswordUsuario() {
        return txtPasswordUsuario;
    }

    public void setTxtPasswordUsuario(Password txtPasswordUsuario) {
        this.txtPasswordUsuario = txtPasswordUsuario;
    }

    public Password getTxtConfPassUsuario() {
        return txtConfPassUsuario;
    }

    public void setTxtConfPassUsuario(Password txtConfPassUsuario) {
        this.txtConfPassUsuario = txtConfPassUsuario;
    }

    public SelectOneMenu getCmbNivelAcceso() {
        return cmbNivelAcceso;
    }

    public void setCmbNivelAcceso(SelectOneMenu cmbNivelAcceso) {
        this.cmbNivelAcceso = cmbNivelAcceso;
    }

    public SelectOneMenu getCmbEstadoo() {
        return cmbEstadoo;
    }

    public void setCmbEstadoo(SelectOneMenu cmbEstadoo) {
        this.cmbEstadoo = cmbEstadoo;
    }

    public CommandButton getBtnRegistrar() {
        return btnRegistrar;
    }

    public void setBtnRegistrar(CommandButton btnRegistrar) {
        this.btnRegistrar = btnRegistrar;
    }

    public CommandButton getBtnModificar() {
        return btnModificar;
    }

    public void setBtnModificar(CommandButton btnModificar) {
        this.btnModificar = btnModificar;
    }

    public CommandButton getBtnEliminar() {
        return btnEliminar;
    }

    public void setBtnEliminar(CommandButton btnEliminar) {
        this.btnEliminar = btnEliminar;
    }

    public CommandButton getBtnLimpiar() {
        return btnLimpiar;
    }

    public void setBtnLimpiar(CommandButton btnLimpiar) {
        this.btnLimpiar = btnLimpiar;
    }

    public List<Usuarioo> getUsuarioos() {
        
        try {
            usuarioos = iLogicaUsuarioo.usuarios();
            
        } catch (Exception ex) {
            Logger.getLogger(VistaUsuarioo.class.getName()).log(Level.SEVERE, null, ex);
        }
        
            return usuarioos;
    }

    public void setUsuarioos(List<Usuarioo> usuarioos) {
        this.usuarioos = usuarioos;
    }

    public Usuarioo getUsuarioSeleccionado() {
        return usuarioSeleccionado;
    }

    public void setUsuarioSeleccionado(Usuarioo usuarioSeleccionado) {
        this.usuarioSeleccionado = usuarioSeleccionado;
    }
    
    
     public void Seleccionar_Usuario(SelectEvent event){
        
        Usuarioo usuarioo= (Usuarioo) event.getObject();
        
        txtIdUsuario.setValue(usuarioo.getIdUsuario());
        txtNombreUsuario.setValue(usuarioo.getNombre());
        txtApellidoUsuario.setValue(usuarioo.getApellidos());
        txtPasswordUsuario.setValue("");
        txtConfPassUsuario.setValue("");
        cmbEstadoo.setValue(usuarioo.getEstado());
        cmbNivelAcceso.setValue(usuarioo.getEstado());
        txtIdUsuario.setDisabled(true);
        btnModificar.setDisabled(false);
        btnEliminar.setDisabled(false);
        btnRegistrar.setDisabled(true);
                
    }
    
    
    public void funcion_Registrar(){
        
            try {
                Usuarioo  usuarioo=new Usuarioo();
                usuarioo.setIdUsuario(Long.parseLong(txtIdUsuario.getValue().toString().trim()));
                usuarioo.setNombre(txtNombreUsuario.getValue().toString().trim().toUpperCase());
                usuarioo.setApellidos(txtApellidoUsuario.getValue().toString().trim().toUpperCase());
                usuarioo.setNivelA(cmbNivelAcceso.getValue().toString().trim());
                usuarioo.setEstado(cmbEstadoo.getValue().toString().trim());
                iLogicaUsuarioo.ValidarContrasena(txtConfPassUsuario.getValue().toString().trim(), txtPasswordUsuario.getValue().toString().trim());
                usuarioo.setContrasena(iLogicaUsuarioo.encriptarContraseña(txtConfPassUsuario.getValue().toString().trim()));
                iLogicaUsuarioo.crearUsuario(usuarioo);
                FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage("El Usuario Fue Creado con Exito"));
                funcion_Limpiar();

            } catch (Exception ex) {
                Logger.getLogger(VistaUsuarioo.class.getName()).log(Level.SEVERE, null, ex);
                FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(ex.getMessage()));
            }

        }
    
    public void funcion_Modificar(){
        
        try {
                Usuarioo  usuarioo=new Usuarioo();
                usuarioo.setIdUsuario(Long.parseLong(txtIdUsuario.getValue().toString().trim()));
                usuarioo.setNombre(txtNombreUsuario.getValue().toString().trim().toUpperCase());
                usuarioo.setApellidos(txtApellidoUsuario.getValue().toString().trim().toUpperCase());
                usuarioo.setNivelA(cmbNivelAcceso.getValue().toString().trim());
                usuarioo.setEstado(cmbEstadoo.getValue().toString().trim());
                if(!(txtPasswordUsuario.getValue().toString().equals(""))){
                    
                }
                iLogicaUsuarioo.modificarUsuario(usuarioo);
                FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage("El Usuario Fue Modificado con Exito"));
                funcion_Limpiar();

            } catch (Exception ex) {
                Logger.getLogger(VistaUsuarioo.class.getName()).log(Level.SEVERE, null, ex);
                FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(ex.getMessage()));
            }
        
    }
    
    public void funcion_Eliminar(){
        
         try {
            
            Usuarioo usuarioo= iLogicaUsuarioo.buscarUsuarioPorId(Long.parseLong(txtIdUsuario.getValue().toString()));
            iLogicaUsuarioo.eliminarUsuario(usuarioo);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage("El Usuario Fue Eliminado con Exito"));
            funcion_Limpiar();
            
        } catch (Exception ex) {
            Logger.getLogger(VistaUsuarioo.class.getName()).log(Level.SEVERE, null, ex);
            FacesContext.getCurrentInstance().addMessage("Mensaje", new FacesMessage(ex.getMessage()));
        }
        
        
    }
    
    public void funcion_Limpiar(){
        
        txtIdUsuario.setValue("");
        txtNombreUsuario.setValue("");
        txtApellidoUsuario.setValue("");
        txtPasswordUsuario.setValue("");
        txtConfPassUsuario.setValue("");
        cmbEstadoo.setValue("");
        cmbNivelAcceso.setValue("");
        btnEliminar.setDisabled(true);
        btnRegistrar.setDisabled(false);
        btnModificar.setDisabled(true);
        txtIdUsuario.setDisabled(false);
        btnLimpiar.setDisabled(false);
        
        
    }
  
   
    
}
